/**业务管理流程平台版本1.0,生成时间:2017-04-13 13:16:48**/
package com.xbdun.service.bmp.service.system;

import java.util.List;

import com.xbdun.common.api.Client;
import com.xbdun.facade.bmp.request.system.SysMenuRequest;
import com.xbdun.facade.bmp.response.system.PlatResponse;
import com.xbdun.facade.bmp.response.system.SysMenuResponse;
import com.xbdun.facade.bmp.response.system.TreeNodeResponse;


/**
 * 企业信息
 * @ClassName SysMenuService
 * @author 张国涛
 * @2017-04-13 13:16:48
 */
public interface SysMenuService {
	
	/**
	 * 新增
	 * @param SysMenuRequest 
	 */
	public Long addSysMenu(SysMenuRequest request) throws Exception;

	/**
	* @Title: getSysMenu
	* @Description: 根据机构ID查询机构信息
	* @param id	机构ID
	* @return SysMenuResponse    返回类型
	* @throws
	 */
	public SysMenuResponse getSysMenu(long id) throws Exception;
	
	/**
	* @Title: modifySysMenu
	* @Description: 修改菜单信息
	* @param sysMenuRequest	机构信息
	* @throws Exception
	 */
	public void modifySysMenu(SysMenuRequest sysMenuRequest) throws Exception;
	
	/**
	* @Title: queryGrantMenu
	* @Description: 查询能够授权的菜单
	* @param orgCode	查询该机构的菜单树
	* @param client 	当前客户端
	* @return List<TreeNodeResponse>    返回类型
	 */
	public List<TreeNodeResponse> queryGrantMenu(long orgCode, Client client)throws Exception;

	/**
	* @Title: queryTreeMenu
	* @Description: 查询平台的所有菜单
	* @param code 
	* @param client 	当前客户端
	* @return List<TreeNodeResponse>    返回类型
	 */
	public List<TreeNodeResponse> queryMenuTree(long code, Client client)throws Exception;

	/**
	* @Title: getAllPlatByMenu
	* @Description:  获取菜单中属于平台的菜单
	* @param client	   调用客户端
	* @return List<SysMenuResponse>    返回类型
	 */
	public List<SysMenuResponse> getAllPlatByMenu(Client client)throws Exception;

	/**
	 * @Title: getAllPlat
	 * @Description:  获取所有平台的集合
	 * @param client	   调用客户端
	 * @return List<PlatResponse>    返回类型
	 */
	public List<PlatResponse> getAllPlat(Client client)throws Exception;

	/**
	 * @Title: getMenuInfo
	 * @Description:  获取菜单详情
	 * @param code 	菜单编号
	 * @param client	   调用客户端
	 * @return SysMenuResponse    返回类型
	 */
	public SysMenuResponse getMenuInfo(Long code, Client client)throws Exception;

	/**
	 * 删除菜单
	 * @Title: deleteSysMenu
	 * @Description:  删除菜单
	 * @param client	   调用客户端
	 * @param code 菜单code
	 * @return XbdUnStringResult    返回类型
	 */
	public void deleteSysMenu(Long code)throws Exception;
	
	
	
	
	

	
	
	
	
	
	
	
	
}